// pages/address/list/index.js
//导入地址函数
import { reqAddressList, reqDeleteAdress } from '../../../api/address'
import { swipercellbehavior } from '../../../../../behaviors/swiperCell'

//获取应用实例
const app = getApp()
Page({
  behaviors: [swipercellbehavior],
  // 页面的初始数据
  data: {
    addressList: []
  },

  // 去编辑页面
  toEdit(event) {
    //获取更新地址id
    const { id } = event.currentTarget.dataset

    wx.navigateTo({
      url: `/modules/settingModules/pages/address/add/index?id=${id}`
    })
  },

  //获取收货地址
  async getAddressList() {
    const res = await reqAddressList()
    if (res.code === 200) {
      this.setData({
        addressList: res.data
      })
    }
  },
  //在页面加载时触发
  //页面没有销毁 ,onLoad只会加载一次
  //点击新增编辑 不会进行销毁当前页面进行新增和编辑页面
  //不会获取最新数据
  // onLoad(){},

  async deleteAddress(event) {
    //获取更新地址id
    const { id } = event.currentTarget.dataset
    //是否删除地址
    const modalres = await wx.Model({
      content: '是否删除收货地址?'
    })
    if (modalres) {
      const { code } = await reqDeleteAdress(id)
      if (code === 200) {
        wx.toast({
          title: '地址删除成功'
        })
        //删除成功重新获取地址
        this.getAddressList()
      }
    }
  },

  onShow() {
    this.getAddressList()
  },
  onLoad(options) {
    //接收参数,挂载到页面实例上 ,方便再其他方法中使用
    this.flag = options.flag
  },
  //更新收货地址
  changeAddress(event) {
    //需要判断是否首次从结算页面进入收货地址列表
    //如果是才获取地址
    if (this.flag != 1) return

    //如果是从支付页面进入收货地址列表 需要获取点击收货地址详细信息
    const addressId = event.currentTarget.dataset.id

    //需要从收货地址列表id查找收货地址详情 分享给全局共享数据
    const selectAddress = this.data.addressList.find((item) => item.id === addressId)
    app.globalData.address = selectAddress
    wx.navigateBack()
  }
})
